package hxy.ecnu.pattern;
/**
 * 描述：静态内部类单例模式（推荐的写法）不会存在线程安全性问题，写法简单，实用
 * @author eric
 *
 */
class __Singleton {
	//2. 私有的静态内部类，编译的时候就会先加载 ，类加载器负责加锁。所以不需要额外的设计双重锁啥的。
	private static class SingletonHolder {
		private static __Singleton singleton = new __Singleton();
	}
	//1.私有化构造方法，防止被外部直接实用new新建对象
	private __Singleton() {

	}
	//3.自行对外提供实例
	public static __Singleton getInstance() {
		return SingletonHolder.singleton;
	}

	public static void main(String[] args) {
		
		__Singleton singleton1 = __Singleton.getInstance();
		__Singleton singleton2 = __Singleton.getInstance();
		System.out.println(singleton2==singleton1);
	}

}
